# -*- coding: utf-8 -*-
"""
初始化活动类型数据
运行命令：python manage.py init_activity_types
"""

from django.core.management.base import BaseCommand
from activities.models import ActivityType


class Command(BaseCommand):
    help = '初始化活动类型数据'

    def handle(self, *args, **options):
        """执行初始化"""
        
        # 定义所有活动类型
        activity_types = [
            # 运动健身类
            {
                'name': '户外运动',
                'description': '登山、徒步、露营、骑行等户外运动活动',
                'is_system': True,
                'sort_order': 100
            },
            {
                'name': '球类运动',
                'description': '足球、篮球、羽毛球、乒乓球、网球等球类运动',
                'is_system': True,
                'sort_order': 95
            },
            {
                'name': '健身瑜伽',
                'description': '健身训练、瑜伽、普拉提、舞蹈等室内运动',
                'is_system': True,
                'sort_order': 90
            },
            {
                'name': '水上运动',
                'description': '游泳、冲浪、帆船、潜水等水上活动',
                'is_system': True,
                'sort_order': 85
            },
            {
                'name': '极限运动',
                'description': '攀岩、跳伞、蹦极、滑翔伞等极限挑战',
                'is_system': True,
                'sort_order': 80
            },
            
            # 文化艺术类
            {
                'name': '文化艺术',
                'description': '绘画、书法、手工制作、插花等艺术创作活动',
                'is_system': True,
                'sort_order': 75
            },
            {
                'name': '音乐演出',
                'description': '音乐会、演唱会、乐器学习、乐队排练等',
                'is_system': True,
                'sort_order': 70
            },
            {
                'name': '戏剧影视',
                'description': '话剧、电影放映、影评交流、剧本朗读等',
                'is_system': True,
                'sort_order': 65
            },
            {
                'name': '摄影采风',
                'description': '摄影外拍、摄影技巧交流、作品展览等',
                'is_system': True,
                'sort_order': 60
            },
            
            # 学习交流类
            {
                'name': '学习交流',
                'description': '读书会、知识分享、技能学习、经验交流',
                'is_system': True,
                'sort_order': 55
            },
            {
                'name': '语言学习',
                'description': '英语角、外语交流、语言学习小组',
                'is_system': True,
                'sort_order': 50
            },
            {
                'name': '职业发展',
                'description': '职业规划、技能培训、求职交流、创业分享',
                'is_system': True,
                'sort_order': 45
            },
            {
                'name': '科技数码',
                'description': '编程学习、科技产品体验、技术交流',
                'is_system': True,
                'sort_order': 40
            },
            
            # 美食生活类
            {
                'name': '美食品鉴',
                'description': '美食探店、烹饪学习、美食制作、品鉴分享',
                'is_system': True,
                'sort_order': 35
            },
            {
                'name': '烘焙甜点',
                'description': '蛋糕制作、面包烘焙、甜点分享',
                'is_system': True,
                'sort_order': 30
            },
            {
                'name': '咖啡茶艺',
                'description': '咖啡品鉴、茶道学习、饮品制作',
                'is_system': True,
                'sort_order': 25
            },
            
            # 社交娱乐类
            {
                'name': '社交聚会',
                'description': '朋友聚会、交友活动、主题派对、社交活动',
                'is_system': True,
                'sort_order': 20
            },
            {
                'name': '桌游棋牌',
                'description': '桌游聚会、狼人杀、剧本杀、棋牌娱乐',
                'is_system': True,
                'sort_order': 15
            },
            {
                'name': '游戏竞技',
                'description': '电子竞技、手游组队、游戏比赛',
                'is_system': True,
                'sort_order': 10
            },
            {
                'name': 'KTV唱歌',
                'description': 'KTV聚会、唱歌娱乐、音乐分享',
                'is_system': True,
                'sort_order': 5
            },
            
            # 旅游探索类
            {
                'name': '旅游出行',
                'description': '周边游、自驾游、旅行探索、景点打卡',
                'is_system': True,
                'sort_order': 0
            },
            {
                'name': '探店寻味',
                'description': '特色店铺探访、美食探店、新店打卡',
                'is_system': True,
                'sort_order': -5
            },
            {
                'name': '文化参观',
                'description': '博物馆、展览馆、历史古迹参观',
                'is_system': True,
                'sort_order': -10
            },
            
            # 亲子家庭类
            {
                'name': '亲子活动',
                'description': '亲子游戏、儿童活动、家庭聚会、育儿交流',
                'is_system': True,
                'sort_order': -15
            },
            {
                'name': '儿童教育',
                'description': '儿童培训、兴趣培养、亲子教育',
                'is_system': True,
                'sort_order': -20
            },
            
            # 公益志愿类
            {
                'name': '志愿服务',
                'description': '公益活动、志愿服务、环保行动、社区服务',
                'is_system': True,
                'sort_order': -25
            },
            {
                'name': '公益募捐',
                'description': '慈善募捐、爱心捐赠、公益筹款',
                'is_system': True,
                'sort_order': -30
            },
            
            # 宠物相关
            {
                'name': '宠物聚会',
                'description': '宠物交流、宠物聚会、宠物训练',
                'is_system': True,
                'sort_order': -35
            },
            
            # 商务活动
            {
                'name': '商务活动',
                'description': '商务交流、行业峰会、产品发布、商业洽谈',
                'is_system': True,
                'sort_order': -40
            },
            {
                'name': '展会活动',
                'description': '行业展会、产品展览、商业展览',
                'is_system': True,
                'sort_order': -45
            },
            
            # 其他
            {
                'name': '其他活动',
                'description': '其他类型的活动',
                'is_system': True,
                'sort_order': -100
            },
        ]
        
        # 创建或更新活动类型
        created_count = 0
        updated_count = 0
        
        for type_data in activity_types:
            obj, created = ActivityType.objects.get_or_create(
                name=type_data['name'],
                defaults={
                    'description': type_data['description'],
                    'is_system': type_data['is_system'],
                    'sort_order': type_data['sort_order']
                }
            )
            
            if created:
                created_count += 1
                self.stdout.write(
                    self.style.SUCCESS(f'✓ 创建活动类型: {type_data["name"]}')
                )
            else:
                # 更新已存在的类型
                obj.description = type_data['description']
                obj.is_system = type_data['is_system']
                obj.sort_order = type_data['sort_order']
                obj.save()
                updated_count += 1
                self.stdout.write(
                    self.style.WARNING(f'• 更新活动类型: {type_data["name"]}')
                )
        
        # 输出统计
        self.stdout.write('\n' + '='*50)
        self.stdout.write(self.style.SUCCESS(f'\n初始化完成！'))
        self.stdout.write(f'  新创建: {created_count} 个')
        self.stdout.write(f'  已更新: {updated_count} 个')
        self.stdout.write(f'  总计: {len(activity_types)} 个活动类型')
        self.stdout.write('='*50 + '\n')
